Micron Document
██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

WebAssembly
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbaWebAssembly (mwbqWasm, mwbgWA) è uno standard web che definisce un formato binario e un corrispondente formato testuale per la scrittura di codice eseguibile nelle pagine web. Ha lo scopo di abilitare l'esecuzione del codice quasi alla stessa velocità con cui esegue il codice macchina nativo. È stato progettato come integrazione di mwbwJavaScript per accelerare le prestazioni delle parti critiche delle mwcaapplicazioni Web e in seguito per consentire lo sviluppo web in altri linguaggi oltre a JavaScript. È sviluppato dal mwcqWorld Wide Web Consortium (W3C) con ingegneri provenienti da mwcgMozilla, mwcwMicrosoft, mwdaGoogle e mwdqApple.

Viene eseguito in una sandbox nel mwdwbrowser Web dopo una fase di verifica formale. I programmi possono essere compilati da linguaggi di alto livello in moduli Wasm e caricati come librerie dalle applet JavaScript.

Contents

Storia
Note

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Progettazione

Il codice WebAssembly è concepito per essere eseguito su una stack machine portabile strutturata e astratta, progettato per essere più veloce da analizzare di JavaScript e più veloce da eseguire e per consentire una rappresentazione molto compatta del codice.

Storia

Le tecnologie precorritrici "vendor-specific" sono state mwfqGoogle Native Client (NaCl) e asm.js. L'implementazione iniziale del supporto di WebAssembly nei browser era basata sul set di funzionalità di asm.js. È stato annunciato per la prima volta il 17 giugno 2015 e il 15 marzo 2016 è stata dimostrata l'esecuzione di mwfgUnity's mwfwAngry Bots in mwgaFirefox, mwgqChromium, mwggGoogle Chrome, e mwgwMicrosoft Edge. Nel marzo 2017, la progettazione del mwhaprodotto minimo vitale è stata dichiarata completata e la fase di mwhqanteprima conclusa. Alla fine di settembre 2017, è stato rilasciato il supporto in mwhgSafari 11. A partire da marzo 2019, il sito Can I use rileva che il 81.41% dei browser a livello globale supporta WebAssembly (e indirettamente, attraverso mwhwpolyfill, altri browser sono supportati).cite-ref-1[1] Nel febbraio 2018 il WebAssembly Working Group ha pubblicato tre bozze di lavoro per Core Specification, JavaScript Interface, e Web API.

Supporto

Mozilla ha dichiarato il supporto "in tutti i principali browser", per esempio è stato abilitato di default anche in Edge 16. Per compatibilità con le versioni precedenti, Wasm può essere compilato in asm.js da un'applet JavaScript (il cosiddetto mwjwpolyfill) ed eseguito su browser incompatibili in questo modo.

Emscripten può compilare in Wasm usando mwkgLLVM nel backend.

Il suo obiettivo iniziale è supportare la mwlacompilazione da mwlqC e mwlgC++, tuttavia sta emergendo anche il supporto per altri mwlwlinguaggi come mwmaRust. Dopo il rilascio del prodotto minimo vitale (MVP, minimum viable product), è previsto il supporto della mwmqgarbage collection che renderebbe WebAssembly una destinazione di compilazione per i linguaggi di programmazione come mwmgJava e mwmwC#.

Rappresentazione

Nel marzo 2017, il WebAssembly Community Group ha raggiunto il consenso sul formato binario iniziale (MVP), sull'API JavaScript e sull'interprete di riferimento. Esso definisce un formato binario di WebAssembly, che non è progettato per essere utilizzato dagli esseri umani, così come un formato mwngbytecode lineare scrittura di assembly leggibile dall'uomo che assomiglia ai tradizionali linguaggi assembly.

La tabella seguente rappresenta tre diverse viste dello stesso mwoacodice sorgente così come immesso (a sinistra), convertito in una rappresentazione intermedia Wasm (al centro), e infine in formato binario Wasm:

| Codice sorgente in linguaggio C | Linear assembly bytecode ( Rappresentazione intermedia ) | Codifica binaria Wasm (byte esadecimali) |
|---|---|---|
| int factorial ( int n ) { if ( n == 0 ) return 1 ; else return n * factorial ( n -1 ); } | get_local 0 i64.eqz if (result i64) i64.const 1 else get_local 0 get_local 0 i64.const 1 i64.sub call 0 i64.mul end | 20 00 50 04 7E 42 01 05 20 00 20 00 42 01 7D 10 00 7E 0B |

Il formato di testo di WebAssembly può anche essere scritto in un formato compatto usando le mweas-expressions. Questo formato è puramente uno mweqzucchero sintattico e non presenta differenze comportamentali con il formato lineare. Un esempio è mostrato di seguito:

(module
(import "math" "exp" (func $exp (param f64) (result f64)))
(func (export "doubleExp") (param $0 f64) (result f64)
(f64.mul
(call $exp
(get_local $0))
(f64.const 2))))

Note

cite-note-11. mwyamwyqcaniuse.com, mwyghttps://caniuse.com/#search=webassemblymwyw Titolo mancante per url mwzaurl (aiuto).

Altri progetti

Altri progetti

• Wikimedia Commons

• Wikimedia Commons contiene immagini o altri file sul WebAssembly

Collegamenti esterni

• (EN) Sito ufficiale, su webassembly.org.
• citerefgithub(EN) WebAssembly, su GitHub.
• Repository sorgenti di WebAssembly, su github.com.
• Repository sorgenti di WebAssembly, su github.com.
• mw1qW3C Community Group, su w3.org.
• mw1wGOTO 2017 • WebAssembly: What and What Next? • Ben Titzer & Andreas Rossberg - YouTube, su youtube.com.
• mw2qWebAssembly | MDN, su developer.mozilla.org.mw2g – con informazioni sulla compatibilità e le specifiche del browser (WebAssembly JavaScript API)